From: kaf24@firebug.cl.cam.ac.uk Date: Wed, 21 Jun 2006 15:54:09 +0000 (+0100) Subject: [LINUX] Transparent virtualization fixes. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15921^2~8 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=9fb9651ac51bef79865829d5f40e54ad23898bd3;p=xen.git [LINUX] Transparent virtualization fixes. Signed-off-by: Tristan Gingold --- diff --git a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c index b8aca26778..bb5cd5e7a4 100644 --- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c +++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c @@ -468,11 +468,11 @@ static int __init balloon_init(void) unsigned long pfn; struct page *page; - IPRINTK("Initialising balloon driver.\n"); - if (!is_running_on_xen()) return -ENODEV; + IPRINTK("Initialising balloon driver.\n"); + current_pages = min(xen_start_info->nr_pages, max_pfn); totalram_pages = current_pages; target_pages = current_pages; diff --git a/linux-2.6-xen-sparse/drivers/xen/core/cpu_hotplug.c b/linux-2.6-xen-sparse/drivers/xen/core/cpu_hotplug.c index 9eaed5b3a2..0969e213a0 100644 --- a/linux-2.6-xen-sparse/drivers/xen/core/cpu_hotplug.c +++ b/linux-2.6-xen-sparse/drivers/xen/core/cpu_hotplug.c @@ -109,6 +109,9 @@ static int __init setup_vcpu_hotplug_event(void) static struct notifier_block xsn_cpu = { .notifier_call = setup_cpu_watcher }; + if (!is_running_on_xen()) + return -ENODEV; + register_cpu_notifier(&hotplug_cpu); register_xenstore_notifier(&xsn_cpu); diff --git a/linux-2.6-xen-sparse/drivers/xen/core/evtchn.c b/linux-2.6-xen-sparse/drivers/xen/core/evtchn.c index 9ef160f482..7d57e105a4 100644 --- a/linux-2.6-xen-sparse/drivers/xen/core/evtchn.c +++ b/linux-2.6-xen-sparse/drivers/xen/core/evtchn.c @@ -666,6 +666,10 @@ static struct hw_interrupt_type pirq_type = { int irq_ignore_unhandled(unsigned int irq) { struct physdev_irq_status_query irq_status = { .irq = irq }; + + if (!is_running_on_xen()) + return 0; + (void)HYPERVISOR_physdev_op(PHYSDEVOP_irq_status_query, &irq_status); return !!(irq_status.flags & XENIRQSTAT_shared); }